<?php
class CommonAction extends Action
{
	public function _initialize()
	{
		if(strtolower($this->getActionName()) !='public')
		{
			$this->checkUser();

			if (C ( 'USER_AUTH_ON' ) && !in_array(MODULE_NAME,explode(',',C('NOT_AUTH_MODULE')))) {

				if (! RBAC::AccessDecision ()) {

					//检查认证识别号
					if (! $_SESSION [C ( 'USER_AUTH_KEY' )]) {
						//跳转到认证网关
						$this->redirect ( PHP_FILE . C ( 'USER_AUTH_GATEWAY' ) );
					}

					// 没有权限 抛出错误
					if (C ( 'RBAC_ERROR_PAGE' )) {

						// 定义权限错误页面
						$this->redirect ( C ( 'RBAC_ERROR_PAGE' ) );
					} else {

						if (C ( 'GUEST_AUTH_ON' )) {

							$this->redirect ( PHP_FILE . C ( 'USER_AUTH_GATEWAY' ) );
						}
						//echo L ( '_VALID_ACCESS_' );
						// 提示错误信息
						$this->error( L ( '_VALID_ACCESS_' ));
					}

				}

			}


		}
		//ext扩展库目录
		$this->assign('__EXT__',__ROOT__ .'/'.APP_PATH.'/public/ext-3.3.1/');
		$this->assign('__JSLIB__',__ROOT__ .'/'.APP_PATH.'/public/js/');
	}
	// 检查用户是否登录
	protected function checkUser() {
		if(!isset($_SESSION[C('USER_AUTH_KEY')])) {
			$this->redirect('Public/login');
		}
	}
	protected function ajaxReturn($data,$info='',$status=1,$type=''){
        // 保证AJAX返回后也能保存日志
        if(C('LOG_RECORD')) Log::save();
        $result  =  array();
        $result['success']  =  $status;
        $result['info'] =  $info;
        $result['data'] = $data;
        if(empty($type)) $type  =   C('DEFAULT_AJAX_RETURN');
        if(strtoupper($type)=='JSON') {
            // 返回JSON数据格式到客户端 包含状态信息
            header("Content-Type:text/html; charset=utf-8");
            exit(json_encode($result));
        }elseif(strtoupper($type)=='XML'){
            // 返回xml格式数据
            header("Content-Type:text/xml; charset=utf-8");
            exit(xml_encode($result));
        }elseif(strtoupper($type)=='EVAL'){
            // 返回可执行的js脚本
            header("Content-Type:text/html; charset=utf-8");
            exit($data);
        }else{
            // TODO 增加其它格式
        }

	}
}